﻿Public Partial Class mitglied_detail
    Inherits System.Web.UI.Page
    Private _funktionen As New stored_functions_mitglied
    Private _db As New hc_databaseDataContext
    Private _mitglied As Mitgliede_Anwaerter
    Private _hcEmailEndung = "@hanseaticconsulting.de"

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Try
            _mitglied = (From it In _db.Mitgliede_Anwaerter _
                         Where it.ID.Equals(Session("MitgliedsID")) _
                         Select it).Single
        Catch
            Response.Redirect("mitglied_uebersicht.aspx")
        End Try
        rechteVerwalten()
        If (Not IsPostBack) Then
            allgemeinLaden()
            faehigkeitenSchulungenLaden()
        End If
    End Sub
    Private Sub rechteVerwalten()
        Dim user = (Session("userid") = _mitglied.ID)
        Dim vorstand = (Session("Rang") = "Vorstand")
        Dim vorstandODERuser = vorstand Or user


        'TAB: Allgemein
        ddl_Status.Enabled = vorstand

        tb_Mitgliedsaufnahmegespräch.Enabled = vorstand
        tb_JPM_Zielgespräch.Enabled = vorstand
        tb_PM_Aufnahmegespräch.Enabled = vorstand

        b_Bearbeiten.Visible = vorstandODERuser And (Not b_Ändern.Visible)


        'TAB: Schulungen/Fähigkeiten
        gv_Pflichtschulungen.Columns.Item(0).Visible = vorstand
        gv_Weitere_Schulungen.Columns.Item(0).Visible = vorstandODERuser
        l_Schulung_Pflicht.Visible = vorstand
        cb_Schulung_Pflicht.Visible = vorstand
        cb_Schulung_Pflicht.Enabled = vorstand
        l_Schulung_Name.Visible = vorstandODERuser
        tb_Schulung_Name.Visible = vorstand
        ddl_Schulung_Name.Visible = vorstandODERuser
        l_Schulung_Kurzbeschreibung.Visible = vorstand
        tb_Schulung_Kurzbeschreibung.Visible = vorstand
        l_Schulung_Datum.Visible = user
        tb_Schulung_Datum.Visible = user
        l_Schulung_Intern_extern.Visible = vorstand
        cb_Schulung_Intern_extern.Visible = vorstand
        b_Schulung_hinzufügen.Visible = vorstandODERuser

        gv_Fähigkeiten.Columns.Item(0).Visible = vorstandODERuser
        l_Fähigkeit_Bezeichnung.Visible = vorstandODERuser
        tb_Fähigkeit_Bezeichnung.Visible = vorstandODERuser
        l_Fähigkeit_Beschreibung.Visible = vorstandODERuser
        tb_Fähigkeit_Beschreibung.Visible = vorstandODERuser
        l_Fähigkeit_Skalierung.Visible = vorstandODERuser
        tb_Fähigkeit_Skalierung.Visible = vorstandODERuser
        b_Fähigkeit_hinzufügen.Visible = vorstandODERuser
        l_Fähigkeiten_Beispiel.Visible = vorstandODERuser
    End Sub
    Private Sub allgemeinLaden()
        'TAB: Allgemein
        l_Vorname.Text = _mitglied.Vorname
        tb_Vorname.Text = _mitglied.Vorname
        l_Nachname.Text = _mitglied.Nachname
        tb_Nachname.Text = _mitglied.Nachname
        'i_Foto.

        Try
            cb_aktiv_passiv.Checked = _mitglied.Aktiv_passiv
        Catch
            cb_aktiv_passiv.Checked = False
        End Try
        l_Ressort.Text = _mitglied.Ressort
        Dim ressorts As New ArrayList
        With ressorts
            .Add("")
            .Add("R&F")
            .Add("IT")
            .Add("Personal")
            .Add("Marketing")
            .Add("Strategie")
            .Add("QM")
            .Add("Projekte")
        End With
        ddl_Ressort.DataSource = ressorts
        ddl_Ressort.DataBind()
        ddl_Ressort.SelectedValue = _mitglied.Ressort
        l_Status.Text = _mitglied.Mitgliedsstatus
        Dim status As New ArrayList
        With status
            .Add("")
            .Add("Interessent")
            .Add("Anwärter")
            .Add("Mitglied")
            .Add("JPM")
            .Add("PM")
            .Add("Vorstand")
            .Add("Ressortleiter-QM")
            .Add("Alumni")

        End With
        ddl_Status.DataSource = status
        ddl_Status.DataBind()
        ddl_Status.SelectedValue = _mitglied.Mitgliedsstatus
      

        l_Telefon.Text = _mitglied.telefon
        tb_Telefon.Text = _mitglied.telefon
        l_Skype.Text = _mitglied.Skype
        tb_Skype.Text = _mitglied.Skype
        Dim hcEmail = _mitglied.Email_HC
        l_HC_Email.Text = hcEmail
        If (Not IsNothing(hcEmail)) And (hcEmail <> "") Then
            hcEmail = Left$(hcEmail, hcEmail.Length - _hcEmailEndung.Length)
        End If
        tb_HC_Email.Text = hcEmail
        l_AThanseaticconsultingDE.Text = _hcEmailEndung
        l_Email_privat.Text = _mitglied.E_Mail_privat
        tb_Email_privat.Text = _mitglied.E_Mail_privat
        l_Straße.Text = _mitglied.Strasse_hausnr
        tb_Straße.Text = _mitglied.Strasse_hausnr
        Try
            l_PLZ.Text = _mitglied.Plz
            tb_PLZ.Text = _mitglied.Plz
        Catch
            l_PLZ.Text = ""
            tb_PLZ.Text = ""
        End Try
        l_Ort.Text = _mitglied.Ort
        tb_Ort.Text = _mitglied.Ort

        Dim studiengänge As New HashSet(Of String)
        With studiengänge
            .Add("")
            For Each mitglied In _db.Mitgliede_Anwaerter
                Dim sg = mitglied.Studiengang
                If (sg IsNot Nothing) Then
                    .Add(sg)
                End If
            Next
        End With
        l_Studiengang.Text = _mitglied.Studiengang
        ddl_Studiengang.DataSource = studiengänge
        ddl_Studiengang.DataBind()
        ddl_Studiengang.SelectedValue = _mitglied.Studiengang
        Dim semester As New ArrayList
        With semester
            .Add("")
            For i = 1 To 25
                .Add(i)
            Next
        End With
        ddl_Semester.DataSource = semester
        ddl_Semester.DataBind()
        Try
            l_Semester.Text = _mitglied.Semester
            ddl_Semester.SelectedValue = _mitglied.Semester
        Catch
            l_Semester.Text = ""
            ddl_Semester.SelectedValue = ""
        End Try
        Dim vertiefungen As New HashSet(Of String)
        With vertiefungen
            .Add("")
            For Each mitglied In _db.Mitgliede_Anwaerter
                Dim vt = mitglied.Vertiefung1
                If (vt IsNot Nothing) Then
                    .Add(vt)
                End If
                vt = mitglied.Vertiefung2
                If (vt IsNot Nothing) Then
                    .Add(vt)
                End If
                vt = mitglied.Vertiefung3
                If (vt IsNot Nothing) Then
                    .Add(vt)
                End If
                vt = mitglied.Vertiefung4
                If (vt IsNot Nothing) Then
                    .Add(vt)
                End If
            Next
        End With
        l_Vertiefung_1.Text = _mitglied.Vertiefung1
        ddl_Vertiefung_1.DataSource = vertiefungen
        ddl_Vertiefung_1.DataBind()
        ddl_Vertiefung_1.SelectedValue = _mitglied.Vertiefung1
        l_Vertiefung_2.Text = _mitglied.Vertiefung2
        ddl_Vertiefung_2.DataSource = vertiefungen
        ddl_Vertiefung_2.DataBind()
        ddl_Vertiefung_2.SelectedValue = _mitglied.Vertiefung2
        l_Vertiefung_3.Text = _mitglied.Vertiefung3
        ddl_Vertiefung_3.DataSource = vertiefungen
        ddl_Vertiefung_3.DataBind()
        ddl_Vertiefung_3.SelectedValue = _mitglied.Vertiefung3
        l_Vertiefung_4.Text = _mitglied.Vertiefung4
        ddl_Vertiefung_4.DataSource = vertiefungen
        ddl_Vertiefung_4.DataBind()
        ddl_Vertiefung_4.SelectedValue = _mitglied.Vertiefung4
        Dim ausbildungen As New HashSet(Of String)
        With ausbildungen
            .Add("")
            For Each mitglied In _db.Mitgliede_Anwaerter
                Dim a = mitglied.Ausbildung
                If (a IsNot Nothing) Then
                    .Add(a)
                End If
            Next
        End With
        l_Ausbildung.Text = _mitglied.Ausbildung
        ddl_Ausbildung.DataSource = ausbildungen
        ddl_Ausbildung.DataBind()
        ddl_Ausbildung.SelectedValue = _mitglied.Ausbildung


        Try
            l_Erster_HC_Abend.Text = _mitglied.ErsterHcAbend
            ce_Erster_HC_Abend.SelectedDate = _mitglied.ErsterHcAbend
        Catch
            l_Erster_HC_Abend.Text = ""
            ce_Erster_HC_Abend.SelectedDate = Nothing
        End Try
        Try
            l_AP_Zielgespräch.Text = _mitglied.ZielgespraechAP
            ce_AP_Zielgespräch.SelectedDate = _mitglied.ZielgespraechAP
        Catch
            l_AP_Zielgespräch.Text = ""
            ce_AP_Zielgespräch.SelectedDate = Nothing
        End Try
        Try
            cb_Außenauftritt.Checked = _mitglied.Aussenauftritt
        Catch
            cb_Außenauftritt.Checked = False
        End Try

        Try
            l_Mitgliedsaufnahmegespräch.Text = _mitglied.Mitgliedsausfnahmegespraech
            ce_Mitgliedsaufnahmegespräch.SelectedDate = _mitglied.Mitgliedsausfnahmegespraech
        Catch
            l_Mitgliedsaufnahmegespräch.Text = ""
            ce_Mitgliedsaufnahmegespräch.SelectedDate = Nothing
        End Try
        Try
            l_JPM_Zielgespräch.Text = _mitglied.ZielgespraechJPM
            ce_JPM_Zielgespräch.SelectedDate = _mitglied.ZielgespraechJPM
        Catch
            l_JPM_Zielgespräch.Text = ""
            ce_JPM_Zielgespräch.SelectedDate = Nothing
        End Try
        Try
            l_PM_Aufnahmegespräch.Text = _mitglied.PmAufnahmeGespraech
            ce_PM_Aufnahmegespräch.SelectedDate = _mitglied.PmAufnahmeGespraech
        Catch
            l_PM_Aufnahmegespräch.Text = ""
            ce_PM_Aufnahmegespräch.SelectedDate = Nothing
        End Try
    End Sub
    Private Sub faehigkeitenSchulungenLaden()
        'TAB: Fähigkeiten/Schulungen
        Dim schulungen As New HashSet(Of String)
        With schulungen
            .Add("")
            For Each schulung In _db.Schulungens
                Dim s = schulung.Name
                If (s IsNot Nothing) Then
                    .Add(s)
                End If
            Next
        End With
        ddl_Schulung_Name.DataSource = schulungen
        ddl_Schulung_Name.DataBind()

        l_Fähigkeiten_Beispiel.Text = _
            "(&nbsp;" + "BEISPIEL:" + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + _
            "Bezeichnung:" + "&nbsp;" + "Webdesign-Kenntnisse" + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + _
            "Beschreibung:" + "&nbsp;" + "speziell php und ASP.Net aber auch Grundlagen in Java" + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + _
            "Skalierung:" + "&nbsp;" + "80" + "&nbsp;&nbsp;&nbsp;" + "[%]" + "&nbsp;)"
    End Sub

    Protected Sub b_Bearbeiten_Click(ByVal sender As Object, ByVal e As EventArgs) Handles b_Bearbeiten.Click
        bearbeiten("True")
        'SetFocus(tb_Nachname)
    End Sub

    Private Sub bearbeiten(ByVal bearbeiten As Boolean)
        l_Vorname.Visible = Not bearbeiten
        tb_Vorname.Visible = bearbeiten
        l_Nachname.Visible = Not bearbeiten
        tb_Nachname.Visible = bearbeiten

        cb_aktiv_passiv.Enabled = bearbeiten
        l_Ressort.Visible = Not bearbeiten
        ddl_Ressort.Visible = bearbeiten
        l_Status.Visible = Not bearbeiten
        ddl_Status.Visible = bearbeiten


        l_Telefon.Visible = Not bearbeiten
        tb_Telefon.Visible = bearbeiten
        l_Skype.Visible = Not bearbeiten
        tb_Skype.Visible = bearbeiten
        l_HC_Email.Visible = Not bearbeiten
        tb_HC_Email.Visible = bearbeiten
        l_AThanseaticconsultingDE.Visible = bearbeiten
        l_Email_privat.Visible = Not bearbeiten
        tb_Email_privat.Visible = bearbeiten
        l_Straße.Visible = Not bearbeiten
        tb_Straße.Visible = bearbeiten
        l_PLZ.Visible = Not bearbeiten
        tb_PLZ.Visible = bearbeiten
        l_Ort.Visible = Not bearbeiten
        tb_Ort.Visible = bearbeiten

        l_Studiengang.Visible = Not bearbeiten
        tb_Studiengang.Visible = bearbeiten
        ddl_Studiengang.Visible = bearbeiten
        l_Semester.Visible = Not bearbeiten
        ddl_Semester.Visible = bearbeiten
        l_Vertiefung_1.Visible = Not bearbeiten
        tb_Vertiefung_1.Visible = bearbeiten
        ddl_Vertiefung_1.Visible = bearbeiten
        l_Vertiefung_2.Visible = Not bearbeiten
        tb_Vertiefung_2.Visible = bearbeiten
        ddl_Vertiefung_2.Visible = bearbeiten
        l_Vertiefung_3.Visible = Not bearbeiten
        tb_Vertiefung_3.Visible = bearbeiten
        ddl_Vertiefung_3.Visible = bearbeiten
        l_Vertiefung_4.Visible = Not bearbeiten
        tb_Vertiefung_4.Visible = bearbeiten
        ddl_Vertiefung_4.Visible = bearbeiten
        l_Ausbildung.Visible = Not bearbeiten
        tb_Ausbildung.Visible = bearbeiten
        ddl_Ausbildung.Visible = bearbeiten


        l_Erster_HC_Abend.Visible = Not bearbeiten
        tb_Erster_HC_Abend.Visible = bearbeiten
        l_AP_Zielgespräch.Visible = Not bearbeiten
        tb_AP_Zielgespräch.Visible = bearbeiten
        cb_Außenauftritt.Enabled = bearbeiten

        l_Mitgliedsaufnahmegespräch.Visible = Not bearbeiten
        tb_Mitgliedsaufnahmegespräch.Visible = bearbeiten
        l_JPM_Zielgespräch.Visible = Not bearbeiten
        tb_JPM_Zielgespräch.Visible = bearbeiten
        l_PM_Aufnahmegespräch.Visible = Not bearbeiten
        tb_PM_Aufnahmegespräch.Visible = bearbeiten

        b_Bearbeiten.Visible = Not bearbeiten
        b_Ändern.Visible = bearbeiten
        b_Verwerfen.Visible = bearbeiten
    End Sub
    Protected Sub b_Verwerfen_Click(ByVal sender As Object, ByVal e As EventArgs) Handles b_Verwerfen.Click
        allgemeinLaden()
        bearbeiten("False")
    End Sub
    Protected Sub b_Ändern_Click(ByVal sender As Object, ByVal e As EventArgs) Handles b_Ändern.Click
        With _mitglied
            .Vorname = tb_Vorname.Text
            .Nachname = tb_Nachname.Text

            .Aktiv_passiv = cb_aktiv_passiv.Checked
            .Ressort = ddl_Ressort.SelectedValue
            .Mitgliedsstatus = ddl_Status.SelectedValue


            .telefon = tb_Telefon.Text
            .Skype = tb_Skype.Text
            Dim hcEmail = tb_HC_Email.Text
            If hcEmail <> "" Then
                .Email_HC = hcEmail + _hcEmailEndung
            Else
                .Email_HC = ""
            End If
            .E_Mail_privat = tb_Email_privat.Text
            .Strasse_hausnr = tb_Straße.Text
            Try
                .Plz = tb_PLZ.Text
            Catch
            End Try
            .Ort = tb_Ort.Text

            Dim studiengang = tb_Studiengang.Text
            If studiengang = "" Then
                studiengang = ddl_Studiengang.SelectedValue
            End If
            .Studiengang = studiengang
            Dim semester = ddl_Semester.SelectedValue
            If semester = "" Then
                semester = Nothing
            End If
            .Semester = semester
            Dim vertiefung1 = tb_Vertiefung_1.Text
            If vertiefung1 = "" Then
                vertiefung1 = ddl_Vertiefung_1.SelectedValue
            End If
            .Vertiefung1 = vertiefung1
            Dim vertiefung2 = tb_Vertiefung_2.Text
            If vertiefung2 = "" Then
                vertiefung2 = ddl_Vertiefung_2.SelectedValue
            End If
            .Vertiefung2 = vertiefung2
            Dim vertiefung3 = tb_Vertiefung_3.Text
            If vertiefung3 = "" Then
                vertiefung3 = ddl_Vertiefung_3.SelectedValue
            End If
            .Vertiefung3 = vertiefung3
            Dim vertiefung4 = tb_Vertiefung_4.Text
            If vertiefung4 = "" Then
                vertiefung4 = ddl_Vertiefung_4.SelectedValue
            End If
            .Vertiefung4 = vertiefung4
            Dim ausbildung = tb_Ausbildung.Text
            If ausbildung = "" Then
                ausbildung = ddl_Ausbildung.SelectedValue
            End If
            .Ausbildung = ausbildung


            Try
                .ErsterHcAbend = tb_Erster_HC_Abend.Text
            Catch
            End Try
            Try
                .ZielgespraechAP = tb_AP_Zielgespräch.Text
            Catch
            End Try
            .Aussenauftritt = cb_Außenauftritt.Checked

            Try
                .Mitgliedsausfnahmegespraech = tb_Mitgliedsaufnahmegespräch.Text
            Catch
            End Try
            Try
                .ZielgespraechJPM = tb_JPM_Zielgespräch.Text
            Catch
            End Try
            Try
                .PmAufnahmeGespraech = tb_PM_Aufnahmegespräch.Text
            Catch
            End Try
        End With
        _db.SubmitChanges()

        allgemeinLaden()
        bearbeiten("False")
    End Sub

    Protected Sub bla(ByVal sender As Object, ByVal e As EventArgs) Handles gv_Projektuebersicht_Mitglied_extern.SelectedIndexChanged, gv_Projektuebersicht_Mitglied_intern.SelectedIndexChanged
        Dim name = sender.SelectedRow.Cells(1).Text
        Dim projID = (From it In _db.Projekts _
                      Where it.Name.Equals(name) = True _
                      Select it.ID).Single()

        Response.Redirect("projekt_detail.aspx?Name=" + projID.ToString)
    End Sub

    Protected Sub b_Schulung_hinzufügen_Click(ByVal sender As Object, ByVal e As EventArgs) Handles b_Schulung_hinzufügen.Click
        Dim neueSchulung As New Schulungen
        With neueSchulung
            .Pflichtschulung = cb_Schulung_Pflicht.Checked
            Dim name = tb_Schulung_Name.Text
            If name = "" Then
                name = ddl_Schulung_Name.SelectedValue
            End If
            .Name = name
            .Kurzbeschreibung = tb_Schulung_Kurzbeschreibung.Text
            Try
                .DAtum = tb_Schulung_Datum.Text
            Catch
            End Try
            .Intern_extern = cb_Schulung_Intern_extern.Checked
            .MITgliederID = _mitglied.ID
        End With
        _db.Schulungens.InsertOnSubmit(neueSchulung)
        _db.SubmitChanges()

        gv_Pflichtschulungen.DataBind()
        gv_Weitere_Schulungen.DataBind()

        'Reset
        cb_Schulung_Pflicht.Checked = False
        tb_Schulung_Name.Text = ""
        tb_Schulung_Kurzbeschreibung.Text = ""
        tb_Schulung_Datum.Text = ""
        cb_Schulung_Intern_extern.Checked = False
    End Sub

    Protected Sub b_Fähigkeit_hinzufügen_Click(ByVal sender As Object, ByVal e As EventArgs) Handles b_Fähigkeit_hinzufügen.Click
        Dim neueFähigkeit As New Fähigkeit_Erfahrungen
        With neueFähigkeit
            .Bezeichnung = tb_Fähigkeit_Bezeichnung.Text
            .Beschreibung = tb_Fähigkeit_Beschreibung.Text
            Try
                .skalierung = tb_Fähigkeit_Skalierung.Text
            Catch
            End Try
            .Mitgliede_AnwaerterID = _mitglied.ID
        End With
        _db.Fähigkeit_Erfahrungens.InsertOnSubmit(neueFähigkeit)
        _db.SubmitChanges()

        gv_Fähigkeiten.DataBind()

        'Reset
        tb_Fähigkeit_Bezeichnung.Text = ""
        tb_Fähigkeit_Beschreibung.Text = ""
        tb_Fähigkeit_Skalierung.Text = ""
    End Sub

    Private Sub ddl_Schulung_Name_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddl_Schulung_Name.SelectedIndexChanged
        Try
            Dim schulung = (From it In _db.Schulungens _
                            Where it.Name = ddl_Schulung_Name.SelectedValue _
                            Select it).First
            With schulung
                cb_Schulung_Pflicht.Checked = .Pflichtschulung
                tb_Schulung_Name.Text = ""
                tb_Schulung_Kurzbeschreibung.Text = .Kurzbeschreibung
                cb_Schulung_Intern_extern.Checked = .Intern_extern
            End With
        Catch ex As Exception
        End Try
    End Sub
End Class